﻿#ifndef DAABSTRACTNODEWIDGET_H
#define DAABSTRACTNODEWIDGET_H
#include <QWidget>
#include "DAWorkFlowGlobal.h"
#include "DAAbstractNode.h"
class DAAbstractNodeGraphicsItem;

DA_IMPL_FORWARD_DECL(DAAbstractNodeWidget)

/**
 * @brief FCNodeItem都可返回一个FCNodeWidget，用于设置node属性
 *
 * FCNodeWidget是一个空的窗口，可以通过@sa setWidget 函数设置窗口
 */
class DAWORKFLOW_API DAAbstractNodeWidget : public QWidget
{
    // Q_OBJECT
    DA_IMPL(DAAbstractNodeWidget)
public:
    explicit DAAbstractNodeWidget(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
    explicit DAAbstractNodeWidget(DAAbstractNodeGraphicsItem *item, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
    ~DAAbstractNodeWidget();

    //设置节点item
    void setNodeItem(DAAbstractNodeGraphicsItem *item);

    //获取保存的节点item指针
    DAAbstractNodeGraphicsItem *getNodeItem() const;

    //获取节点
    DAAbstractNode *getNode() const;
};

#endif // FCABSTRACTNODEWIDGET_H
